#ifndef VECTOR2I_H
#define VECTOR2I_H

//Represent a 2D vector of int
class CVector2i
{
public:
	//!X coordinate
	int m_x;

	//!Y coordinate
	int m_y;

public:

	//!Constructor
	CVector2i();

	//!Constructor
	/*!
	\param x X coordinate
	\param y Y coordinate
	*/
	CVector2i(int x, int y);

	//!Destructor
	~CVector2i();

	//!Redefinition of the + operator
	/*!
	\param v The vector to add
	\return The result vector of this + v
	*/
	CVector2i operator+ (const CVector2i& v)const;

	//!Redefinition of the - operator
	/*!
	\param v The vector to substract
	\return  The result vector this - v
	*/
	CVector2i operator- (CVector2i& v);

	//!Redefintion of the operator !=
	/*!
	\param v The vector to test
	\return True if this and v are the same. False if there are different
	*/
	bool operator != (const CVector2i& v)const;

	//!Get the x coordinate
	/*!
	\return The x coordinate of the vector
	*/
	int getX(void)const;

	//!Get the y coordinate
	/*!
	\return The y coordinate of the vector
	*/
	int getY(void)const;

	//!Set the x coordinate
	/*!
	\param x The x coordinate of the vector
	*/
	void setX(int x);

	//!Set the y coordinate
	/*!
	\param y The y coordinate of the vector
	*/
	void setY(int y);
};
#endif

